home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 20
/
Cream of the Crop 20 (Terry Blount) (1996).iso
/
program
/
skeleton.zip
/
WndProc.asm
< prev
Wrap
Assembly Source File
|
1996-06-02
|
2KB
|
106 lines
TITLE WndProc
INCLUDE COMMON.INC
.CONST
szHelpFile SBYTE "Skeleton.hlp",0h
.CODE
WndProc PROC STDCALL hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
mov eax,uMsg
cmp eax,WM_MENUSELECT ;highest Msg ID processed
ja caseDEFAULT ;if above then default
je caseWM_MENUSELECT
cmp eax,WM_PAINT
je caseWM_PAINT
cmp eax,WM_SIZE
je caseWM_SIZE
cmp eax,WM_CREATE
je caseWM_CREATE
cmp eax,WM_CLOSE
je caseWM_CLOSE
cmp eax,WM_DESTROY
je caseWM_DESTROY
cmp eax,WM_NOTIFY
je caseWM_NOTIFY ;process notifications
cmp eax,WM_COMMAND
je caseWM_COMMAND ;process menu commands
caseDEFAULT: INVOKE DefWindowProc, hWnd, uMsg, wParam, lParam
jmp caseRETURN
caseWM_MENUSELECT:
call MsgWM_MENUSELECT
jmp caseRETURN0
caseWM_PAINT: call MsgWM_PAINT
jmp caseRETURN0
caseWM_SIZE: call MsgWM_SIZE
jmp caseRETURN0
caseWM_CREATE: call MsgWM_CREATE
jmp caseRETURN
caseWM_CLOSE: call MsgWM_CLOSE
jmp caseRETURN0
caseWM_DESTROY: INVOKE WinHelp, hMainWnd, ADDR szHelpFile, HELP_QUIT, 0h
INVOKE PostQuitMessage, 0h
jmp caseRETURN0
caseWM_NOTIFY: mov eax,lParam ;**** Process Notifications ****
mov eax,(NMHDR PTR [eax]).code
cmp eax,TTN_NEEDTEXT
je caseTTN_NEEDTEXT
jmp caseDEFAULT
caseTTN_NEEDTEXT:
call NtfTTN_NEEDTEXT
jmp caseRETURN0
caseWM_COMMAND: mov eax,wParam ;**** Process Menu Commands ****
and eax,0FFFFh
cmp eax,IDM_NEW
je caseIDM_NEW
cmp eax,IDM_OPEN
je caseIDM_OPEN
cmp eax,IDM_SAVE
je caseIDM_SAVE
cmp eax,IDM_SAVEAS
je caseIDM_SAVEAS
cmp eax,IDM_EXIT
je caseWM_CLOSE
cmp eax,IDM_HELPTOPICS
je caseIDM_HELPTOPICS
cmp eax,IDM_ABOUT
je caseIDM_ABOUT
jmp caseDEFAULT
caseIDM_NEW: call CmdIDM_NEW
jmp caseRETURN0
caseIDM_OPEN: call CmdIDM_OPEN
jmp caseRETURN0
caseIDM_SAVEAS: and fFileStatus,NOT NAMEDbit
caseIDM_SAVE: call CmdIDM_SAVE
jmp caseRETURN0
caseIDM_HELPTOPICS:
INVOKE WinHelp, hMainWnd, ADDR szHelpFile, HELP_FINDER, 0h
jmp caseRETURN0
caseIDM_ABOUT: INVOKE DialogBoxParam, hInst, IDD_ABOUT, hMainWnd, ADDR About, NULL
jmp caseRETURN0
caseRETURN0: xor eax,eax ;return 0 if message is processed
caseRETURN: ret
WndProc ENDP
END